1987-BHV-02 S.26-31
HD64180 als Coprozessor im Z80-SystemHelmut BernhardtNatürlich kann man mit entsprechenden Änderungen in jedem Z80-Computer den Z80 gegen einen HD64180 austauschen und hat damit die Leistungsfähigkeit dieser CPU zur Verfügung. Man kann aber auch den Z80 beibehalten und zusätzlich einen HD64180 im System betreiben, wobei sich beide CPUs in der Kontrolle des Computers abwechseln können. Für den Z80 sieht dies so aus, daß er entweder als CPU den Computer steuert oder ganz abgeschaltet ist. Der HD kennt aber zwei verschiedene aktive Zustände. Solange der Z80 Regie führt, muß der HD sich mit 256K RAM und einem EPROM begnügen und hat keinen Zugriff auf den Computer. Wenn der Z80 sich abschaltet und dem HD das System übergibt, kann dieser auf den Computer über die untere Hälfte seines Adreßraumes zugreifen. Sein EPROM ist dann abgeschaltet. Selbstverständlich muß der HD, wenn er den Computer übernimmt, wissen, was er zu tun hat. Es müssen in der Software beider CPUs Vereinbarungen getroffen werden, die eine Parameterübergabe beim Regierungswechsel ermöglichen. Wenn der HD die Regie an den Z80 übergibt, ist eine solche Parameterübergabe nicht nötig, weil der Z80 seine Arbeit dort wieder aufnimmt, wo er vorher aufgehört hat. Unter diesen Voraussetzungen ist es möglich, daß der Z80 sich ganz verabschiedet und den HD64180 stattdessen als CPU arbeiten läßt. Andererseits kann der Z80 dem HD ein Programm und einen Satz Daten in den Speicher schreiben, die der HD sich in seine nur ihm zugänglichen oberen 256K RAM kopiert, sich dort hin bankt und die Kontrolle des Computers wieder dem Z80 überläßt. Nun kann er sich in Ruhe mit dem Number-Crunching beschäftigen, bis der Z80 ihn zur Übergabe der Rechenergebnisse auffordert und ihm eventuell neue Aufgaben in den Speicher schreibt. Eine weitere Beschäftigung des HD kann die Ausgabe von Nachrichten über eine seiner seriellen Schnittstellen sein, ohne daß der währenddessen den Computer steuernde Z80 sich darum kümmern muß, er kann inzwischen Wichtigers verrichten. Weiterhin kann der HD mit seinen eigenen 256K RAM als intelligente RAM-Floppy mit eigenem Prozessor und eigenen Treiberroutinen mißbraucht werden, wobei dann einer der HD-internen DMA-Controller wirkungsvoll eingesetzt werden kann, um Daten vom/zum Sectorbuffer zu übertragen. Das Umschalten zwischen den CPUs erfolgt über ein Flip Flop, das nach dem Einschalten des Computers (RESET*) so eingestellt ist, daß der Z80 aktiv ist und die Bustreiber zwischen HD64180 und Computer im hochohmigen Zustand sind. In dieser Kofiguration findet der HD in den unteren 256K seines physikalischen Adreßraumes von 512K sein "Boot-EPROM", das eine Größe von 8 bis 64K-Byte haben kann und innerhalb der 256K gespiegelt ist. In den oberen 256K des HD liegt RAM-Speicher vor, der dem HD immer zur Verfügung steht. Im EPROM muß eine Routine vorhanden sein, die zunächst alles Nötige an Intelligenz ins RAM kopiert und dann den HD in das RAM umbankt. Nachdem der volle logische Adreßraum von 64K in das RAM gebankt wurde, braucht der HD zunächst nur zu warten, bis der Z80 ihm den Computer übergibt. Das kann er im einfachsten Fall durch Untersuchen der Beschreibbarkeit eines Bytes in den unteren 256K oder nach einem geringfügigen Hardware-Patch über einen Interrupt an seinem INT2-Eingang feststellen. Daraufhin hat er an vereinbarter Stelle im Speicher einen Vektor zu lesen und an die durch den Vektor bezeichnete Stelle zu springen. Das dort stehende Programm entscheidet dann darüber, welche Funktion ihm im folgenden zugedacht ist. Das Umschalten zwischen den CPUs erfolgt immer durch die gerade aktive CPU mit einem OUT-Befehl an Port FBH, wobei das ausgegebene Datum belanglos ist. Wenn zunächst der Z80 diesen OUT-Befehl ausführt, wird sein BUSRQ*-Eingang low gezogen und die internen Treiber der Z80-Bussignale gehen in den hochohmigen Zustand. Gleichzeitig werden die Bustreiber des HD-Boards eingeschaltet, so daß der HD nun den Systembus des Computers kontolliert. Ein Zugriff auf Speicher und memory mapped I/O des Computers ist aber nur möglich, wenn A18 des HD low ist. Wenn dies nicht der Fall ist, bleibt der Databuffer des Boards hochohmig, so daß der HD dann ohne Störungen seine nur ihm zugänglichen 256K RAM in der oberen Hälfte seines Adreßraumes lesen und beschreiben kann. Der HD kann nun ebenfalls die Buskontrolle durch einen OUT-Befehl an Port FBH wieder dem Z80 übergeben. Dieser Befehl hat aber nur Wirkung, wenn der HD den Computer kontrolliert. Wenn der Z80 aktiv ist, kann der HD sich durch diesen OUT-Befehl nicht die Kontolle über den Computer erzwingen. Es kann nur der jeweils den Computer kontrollierende Prozessor die Kontrolle an den anderen übergeben. Der Teil des Coprozessor-Boards, der das Umschalten zwischen den CPUs bewirkt und die Steuerung des BUSRQ*-Eingangs des Z80 und die Freigabe der Bustreiber und des EPROMs des HD-Boards ausführt, ist in Abb.1 gezeigt. Andere wesentliche Schaltungselemente sind in Abb.2 wiedergegeben. Die banalen Dinge wie Beschaltung der RAMs, des EPROMs, der V24-Treiber und der Bustreiber (außer deren Steuereingänge) sind nicht dargestellt. Die Signale der 50poligen Steckerleiste sind mit den entsprechend bezeichneten Pins des Z80-Sockels bzw. bei einem DMA-fähigen Bus alternativ mit den entsprechenden Pins des Bus zu verbinden. Wenn im Computer durch eine MMU Adressen A16 und A17 erzeugt werden, so kann im einfachsten Fall auf die Verwendung von A16 und A17 des HD verzichtet werden, wobei sich der HD auch der MMU des Computers bedienen muß und seine eigene MMU unwirksam bleibt (außer bei der Steuerung von A18 und der Speicheradressierung in den oberen 256K RAM). Eine andere Möglichkeit besteht darin, entsprechend der gerade aktiven Betriebsart über einen Multiplexer entweder A16 und A17 der MMU des Computers oder A16 und A17 des HD durchzuschalten. Wenn die MMU des Computers auch ein 8Bit-Refresh für 256K-Bit-RAMs erzeugt, müssen ebenfalls A7 der MMU des Computers und des HD gemultiplext werden. Auch andere durch die MMU des Computers beeinflußte Adressen sind zu multiplexen (A15, A14...?). Je nach aktiver CPU muß in den Computer entweder der ursprüngliche Takt oder der Takt des HD64180 (Pin 64) eingespeist werden. Es muß also im Computer ein steuerbarer Treiber vorgesehen werden, der den ursprünglichen Systemtakt abschalten kann, wenn der HD das System übernimmt, denn dann wird der HD-Takt über den Bustreiber an den Computer geliefert. Wenn die RAM-Steuersignale RAS*, MUX* und CAS* des Computers aus dem Systemtakt und aus Z80-Signalen hergeleitet werden, sind hier keine Änderungen nötig. Wenn allerdings dieses Timing aus einem höheren Takt (aus dem eventuell auch der CPU-Takt hergeleitet wird) oder über Gatterlaufzeiten erreicht wird, muß eine andere Schaltung dafür verwendet werden. Eine Möglichkeit ist die auf dem HD-Board verwendete Schaltung (Abb.2), die auch im Computer selbst anstelle der vorhandenen eingesetzt werden kann. Bei Computern mit softumschaltbarer Taktrate sind meistens Schaltungen vorhanden, die so beibehalten werden können. Hier braucht dann nur ein Umschalten zwischen ursprünglichem Systemtakt und Takt des HD realisiert zu werden. Abb. 1: Bussteuerung der Coprozessor-KarteAbb. 2: Steuerung der RAMs der Coprozessor-Karte Abb. 3: Layout des HD64180-Boards (Ansicht von der Bestückungsseite) Abb. 4: Drahtbrücken Bestückungsseite Abb. 5: Bestückungsplan Abb. 6: Drahtbrücken auf der Lötseite (Ansicht von der Bestückungsseite) Steckerbelegung von CN1 Steckerbelegung von CN2 Verbindung zum Z80 serielle Schnittstellen Signal Pin Pin Signal Pin Signal +12V 1 2 + 5V 1 RTS1* -12V 3 4 + 5V 2 TXA0 D3 5 6 D4 3 TXA1 D2 7 8 D5 4 RTS0* D1 9 10 D6 5 GND D0 11 12 D7 6 CTS0* A4 13 14 A5 7 CTS1* A6 15 16 A7 8 RXA0 A0 17 18 Al 9 RXA1 A2 19 20 A3 A14 21 22 Al5 Al0 23 24 All A8 25 26 A9 BUSRQ 27 28 nc A13 29 30 Al2 A16 31 32 A17 A18 33 34 RD* IORQ* 35 36 nc out RESET* 37 38 BUSRQ* NERO* 39 40 WR* HALT* 41 42 nc in NMI* 43 44 Ml* INT* 45 46 RFSH* WATT* 47 48 Clock GND 49 50 GND Aufbau der Coprozessor-KarteZunächst werden alle Bohrungen mit einem 0,8mm-Bohrer angelegt. Nur die Anschlüsse für die Stecker CN1 und CN2 werden in 1mm Weite gebohrt. Nun können die bestückungsseitigen Drahtbrücken eingesetzt werden. Dafür sollte allgemein dünner Fädeldraht benutzt werden. Nur die im Drahtbrückenplan dicker eingezeichneten Brücken sollen mit Schaltdraht realisiert werden. Anschließend können dann Widerstände, Kondensatoren, der Qartz, die IC-Sockel und die Pfostenstecker eingesetzt werden. Die abschließende, zeitraubendste Arbeit ist schließlich die freie Verdrahtung mit Fädeldraht auf der Lötseite gemäß Verdrahtungsplan. Auch hier sollen die dick eingezeichneten Verbindungen (für +5V und GND) mit Schaltdraht gelegt werden. Der Anschluß der Karte kann allgemein mit den entsprechend bezeichneten Pins von CN1 an den Sockel der 280-CPU erfolgen. A16 und A17 können mit entsprechenden Signalen eventuell vorhandener Banking-Schaltungen gemultiplext werden, wobei dann BUSRQ* als Steuersignal verwendet wird. Die Versorgungsspannungen +12V und -12V für den Schnittstellentreiber des HD64180 sind nur dann anzulegen, wenn die seriellen Schnittstellen des HD aufgebaut werden. Wenn diese nicht benötigt werden, brauchen die ICs 1488 und 1489 sowie der Stecker CN2 nicht eingesetzt zu werden. Je nach Computer ist dann noch eine mehr oder weniger aufwendige Umschaltung des Systemtaktes und eventuell eine andere Erzeugung der RAM-Steuersignale RAS*, MUX* und CAS* nötig. Wenn außer RAM auch noch andere Baugruppen memory-mapped sind, müssen in die Freigabesignale von RAM und diesen Baugruppen auch noch A16 17 eingehen, um bei Adressierung durch den HD diese Baugruppen innerhalb der möglichen 256K nicht 4mal vorliegen zu haben. Bei Computern mit nur 64K RAM bleiben A16 und A17 unberücksichtigt. Durch Ersetzen der 4164-RAMs durch 41256-RAMs und Einsetzen eines 8Bit-RefreshGenerators läßt sich der Speicher des Computers selbst auf 256K erweitern, ohne daß eine zusätzliche MMU nötig ist. Dann kann aber nur der HD diesen Speicher voll adressieren; der Z80 hat weiterhin nur auf 64K Speicher Zugriff. Dabei wären dann A16 und A17 des HD mit GND unter Kontolle von BUSRQ* zu multiplexen. Wenn der HD die Kontrolle über den Computer hat und in seinen oberen 256K adressiert, ist der Datentreiber des HD64180-Boards gesperrt. Die Adressen und Steuersignale werden aber zum Computer durchgeschaltet, um dort ein Refreshing der RAMs aufrecht zu erhalten. Bei Schreibzugriffen auf die oberen 256K des HD erfolgen also auch Schreibzugriffe auf die entsprechende Adresse in den unteren 256K, nur daß dort dann nicht die Daten des HD sondern zufällige Werte des offenen Datenbus ankommen. Um dies zu verhindern, muß A18 so in die Herleitung aller memory-mapped Baugruppen eingreifen, daß ein Zugriff auf diese Baugruppen nur dann verhindert wird, wenn das Coprozessor-Board angeschlossen ist, der HD den Computer kontrolliert und auf seine oberen 256K RAM zugreift. Wenn das Board nicht angeschlossen ist oder wenn der HD bei Kontrolle des Computers in den unteren 256K des Computers adressiert (A18 ist low) müssen diese Baugruppen freigegeben werden, wenn sie adressiert werden. Dies leistet ein Treiber eines 74LS125-ICs und ein Widerstand. Das dabei gewonnene Signal MMEN* ist im Computer an entsprechenden Stellen in die Herleitung solcher Freigabesignale mit einzubeziehen (siehe unten). Abb. 7: 8-Bit-Refresh GeneratorAbb. 8: Erzeugen der Adresse MA8 für 41256-RAMs in Computern ohne Banker Abb. 9: Erzeugen eines Int2-Interupts bei Out FBh des Z80 Abb. 10: Herleiten eines Steuersignals für die Freigbe von memory-mapped Baugruppen Änderungen im Computer1) GENIE IIIs mit Erweiterung auf 1M Byte gemäß "Dein GIIIs, die 4 unbekannten Wesen"; Sonderheft des Club 80 Infos, 1986Auf dem Adapterboard für die 1M Byte-Erweiterung wird das freie Rasterfeld für ein Dil-14-IC auf ein Dil-16-Feld erweitert, wobei dann GND vom Pin 7 auf den neu hinzugekommenen Pin 8 verlegt wird. Hier wird ein 74LS157-IC eingesetzt und gemäß folgender Abbildung beschaltet. Abb. 11: Multiplex der höheren Adressen von HD64180 und 1M-ErweiterungDie vorhandenen Verbindungen der Signale zu den B-Eingängen dieses zusätzlichen LS157 mit den Zielpunkten der '-Ausgänge sind zu durchtrennen. Durch diese Änderung wird nur das über DO und D1 von Port F3H bewirkte Banking durch die MMU des HD64180 ersetzt, wenn dieser die Regie übernimmt. Das ursprüngliche Banking von nur 256K des GIIIs bleibt auch bei Kontrolle des Computers durch den HD bestehen. Einschränkend für die flexible MMU des HD bleibt hier aber auch die in Hardware durch D6 und D7 von Port F9H einzustellende Common-Bedingung wirksam. Die Programmierung der MMU des HD sollte diesen Voraussetzungen angepaßt werden Common entweder bei 0-16K oder bei 56-64K). Das Umschalten des Systemtaktes kann durch Zwischenschalten eines Treibers mit Freigabe-Eingang (z.B. 74LS125) zwischen GIIIs-Taktquelle, U44, 74LS161, Pin12 und U39, 74L5125, Pin6 erfolgen. Die Freigabe des Treibers erfolgt durch BUSRQ, Pin27 von CN1 des HD-Boards. An Pin5 von U39 wird außerdem auch das Clock-Signal der Steckerleiste CN1 des HD-Boards gelegt. Durch die Steuerung des Treibers des GIIIs-Taktes und der Bustreiber des HD-Boards ist gewährleistet, daß nur einer der beiden Takte dem Computer zugeführt wird. Abb. 12: Taktumschaltung zwischen System-Clock und HD-ClockUm den Zugriff auf memory-mapped Baugruppen bei Adressierung der oberen 256K des HD zu verhindern, ist das aus A18 und BUSRQ* hergeleitete Steuersignal MMEN* folgendermaßen zu verwenden. Die dabei einbezogenen Pins (U62, 74LS32, Pin6 und U53, 74LS32, Pin9) sind aus der Fassung zu biegen. Abb. 13: Eingriff in die Erzeugung der Freigabesignale der memory-mapped Baugruppen des GIIIsDurch die Hardware des GIIIs ist vorgegeben, daß innerhalb der ursprünglichen 256K je nach Lage von Common (0-16K oder 56-64K) diese Bereiche in den oberen 3 Banks nicht verfügbar waren. In den bei der 1MByte-Erweiterung dazugekommenen 3 x 256K war durch Bit 7 in Port F3H steuerbar, ob bei logischer Adressierung innerhalb des als Common festgelegten Adreßbereichs ein Zugriff auf die absolute 64K-Bank 0 oder auf die relative Bank 0 innerhalb des durch D0 und D1 in Port F3H eingestellten 256K-Blocks zugegriffen wird. Die Unterschiede der beiden Banking-Speicheraufteilungen sind folgende: Abb. 14: Speichereinteilung beim Banking mit Z80 über D0, D1 von Port F3H und HD64180-MMUDas HD-Banking ist der in Hardware vorgegebenen Common/Bank-Einteilung der logischen 64K des GIIIs anzupassen. Die MMU des HD ist dafür folgendermaßen zu programmieren:1) Common bei 0-16K: CBAR : 44H Common 0 logisch von 0000H bis 3FFFH Common 1 logisch von 4000H bis FFFFH Bank Area ist nicht definiert BBR : 00H hat keine Bedeutung CBR : 00H, 10H, 20H, 30H für Banks 0-3 analog zur Speichereineinteilung beim Banking mit D0 und D1 in Port F3H des Z80 2) Common bei 56-64K: CBAR : E0H Common 0 ist nicht definiert Common 1 logisch von E000H bis FFFFH Bank Area logisch von 0000H bis DFFFH CBR : 00H hat keine Bedeutung BBR : 00H, 10H, 20H, 30H für Banks 0-3 analog zur Speichereinteilung beim Banking mit D0 und D1 in Port F3H des Z80 2) TRS80, Model I, GENIE I und II und Komtek 1 mit 256K (1M)-Banker gemäß Infos der TRS80/GENIE-User-Clubs, 1986Zum Umschalten zwischen den Adressen A7, A16 und A17 des Bankers unter Z80-Kontrolle oder der MMU des HD64180, wenn dieser den Computer kontrolliert, ist ein 74LS157-IC nötig, das zwischen Banker und RAM-Adreßmultiplexer geschaltet wird. Dieses IC wird folgendermaßen beschaltet: Abb. 15: Multiplex der höheren Adressen des HD64180 und des 256K-BankersDurch Huckepacklöten auf ein anderes 74LS157-IC mit den Pins 8 und 16 entweder auf dem CPU-Board oder auf dem Banker ist auch die Versorgungsspannung für dieses IC vorhanden. Um unter 280- und HD-Kontrolle beim Banking gleiche physikalische Speicher anzusprechen, sollte A15 des HD-Boards über einen 74LS04-Inverter angeschlossen werden, wenn dies zum Banking der oberen 32K für den Banker des Z80 auch gemacht wurde. Die Decoderschaltungen für die Freigabe von RAM und ROM sowie memory-mapped I/O im TRS80, GENIE und Komtek 1 berücksichtigen nur die Adressen bis A15. Da ROM und memory-mapped I/O aber unter HD-Kontrolle nur dann freigegeben werden sollen, wenn auch A16, A17 und A18 low sind, müssen diese Signale in der Decoderschaltung noch berücksichtigt werden. Dafür werden die Signale A16 und A17 von den Ausgängen des zusätzlichen 74LS157 und das aus A18 und BUSRQ* hergeleitete MMEN* verwendet. #1 die direkte Verbindung zu Z37, Pin15 wird wieder entfernt Eingriff in die Decoderschaltung bei GENIE I und II
Abb. 16: Eingriff in die Decoderschaltung bei Genie I und II Im TRS80 ist eine etwas aufwendigere Methode nötig. Zum Teil sind die in der folgenden Abbildung dargestellten Änderungen schon beim Umrüsten auf 64 bzw. 256K RAM auf dem CPU-Board durchgeführt worden. Abb. 18: Änderungen am Adreßmultiplexer des TRS80S links im Bild ist die hierauf folgende Schaltung Anstelle von A14 wird der Ausgang S1 an die Pins 1 und 15 von Z21 gelegt. Anstelle von Pin 6 von Z73 wird der Ausgang S2 an die Pins 2 und 14 von Z21 gelegt. Anstelle von RAS* wird A14 an Pin 5 von Z73 gelegt. Im Jumperfeld X3 werden alle Brücken außer 1-16 gelegt. Zusätzlich wird mit einem an den Pins 7 und 14 an geeigneter Stelle huckepack-gelöteten 74LS32 folgende Zusatzschaltung realisiert. Abb. 19: Zusatzschaltung S für den AdreßdecoderDa der HD im Computer nur 256K adressieren kann, muß ein Zugriff auf darüber hinausgehende Speichergrößen unter Zuhilfenahme des Bankers erfolgen, wobei dan die Bits 0, 1 des Ports ECh, mit denen per Banking innerhalb von 256K adressiert wird, wirkungslos sind, weil die Adressen A15, A16 und A17 des HD dann durchgeschaltet werden. Es muß dann das Banking des HD dem des Bankers angepaßt werden: Common 0 bei 00000H-07FFFH und Common 1 bei 08000H-0FFFFA (für Bank 0). Banking mit der MMU des HD muß dann durch Verschieben von Common 1 um jeweils 32K erfolgen. D0, D1 und D2 in Port ECA haben für den HD64180 keine Bedeutung; wenn aber später der Z80 wieder den Computer übergeben kriegt, werden diese Bits des Port ECH aktiv. Das kann dann unangenehme Folgen haben, wenn bei mehr als 256K im Computer der HD mit D3 (und D4) in Port ECA auf den Gesamtspeicher zugreift und dabei auch D0, D1 und D2 verändert. Da Port ECH nicht ausgelesen werden kann, muß eine Vereinbarung zwischen den CPUs getroffen werden, daß z.B. bei Übergabe des Computers immer Bank 0 eingestellt sein muß. Für die Übertragung bisheriger Banking-Software auf den Betrieb der MMU des HD gilt folgende Speichereinteilung und Entsprechung von Banks. Das ist zu berücksichtigen, wenn HD und Z80 abwechselnd auf Daten und Programme in den Banks zugreifen sollen. Abb. 20: Speicheraufteilung beim Banking mit 256K(1M)-BankerFür den HD besteht der Computer nur aus 256K Speicher, innerhalb derer er durch seine MMU oder per DMA adressieren kann. Bei logischen Adressen unterhalb von 8000H wird immer der erste 32K Speicherblock bzw. ROM oder Memory-mapped I/O adressier.Bei logischen Adressen ab 8000H wird die durch die MMU (Common-1-Lage)vorgegebene Bank innerhalb des vom Z80 durch Q3 und Q4 von Port ECh adressierten 256K-Blocks angewählt. Eine entsprechend Bank 1 ses Bankers mögliche Adreßverschiebung für die MMU des HD findet nicht statt. Bei logischen Adressen oberhalb 7FFFh adreßieren Q3 und Q4 des Port FCh und die physikalische Lage von Common 1 direkt den Speicher. Der Systemtakt läßt sich ähnlich, wie für den Genie IIIs gezeigt, umschalten, wobei der bisherige Systewmtakt (Punkt A in der bei der Beschreibung für den GIIIs gezeigten Schaltung) an den Eingang des Treibers gelegt wird und der Ausgang anstelle des bisherigen Taktes hier direkt an Pin 6 des Z80 geführt wird. Der Punkt A ist zu finden bei:
Eventuell muß an Pin 6 des Z80 noch ein Pullup-Widerstand von 4K7 gelegt werden, wenn ein solcher nach dem Abtrennen des direkten Systemtaktes nicht mehr Verbindung mit Pin 6 des Z80 hat. Die MMU des HD ist folgendermaßen zu programmieren: CBAR : 88H Common 0 logisch bei 0000H-7FFFH Common 1 logisch bei 8000H-FFFFH Bank Area nicht definiert BBR : 00H hat keine Bedeutung CBR : 00H, 08H, 10H, 18H, 20H, 28H, 30H entsprechend den Banks (für Port ECH) 0 2 3 4 5 6 1(7,15,31) Zur Anwahl der Banks 8-14 bei 512K bzw. 8-30 bei 1024K sind diese Einträge in das CBR-Register in Kombination mit den Bits (3 und 4) des Ports ECH zu wählen. Zur Anwahl der Bank 1 sollten diese Bits immer high gesetzt werden. Da bei TRS80 Model 1, GENIE I und II und Komtek 1 die RAM-Steuersignale nicht aus dem Systemtakt selbst sondern aus einem mehrfachen des Systemtaktes hergeleitet werden, muß diese Schaltung durch eine solche ersetzt werden, die den Systemtakt selbst zur Steuerung benutzt. Es muß dabei der an den Z80, Pin 6 gelangende Takt genommen werden, damit die RAM-Steuerung abwechselnd mit dem Z80-Takt oder dem HD64180-Takt synchron läuft. Dafür ist ein 74S74-IC und ein Gatter eines 74LS125-ICs nötig, das die Taktumschaltung (zusammen mit den Bustreibern des HD-Boards) erledigt. Abb. 20: Erzeugen der RAM-Steuersignale MUX* und CAS* für unterschiedliche SystemtakteDie in dieser Schaltung bezeichneten Punkte A bis F sind mit folgenden Punkten auf dem CPU-Board zu verbinden: TRS80 Model 1 GENIE I u. II Komtek 1 Punkt Signal IC Typ Pin IC Typ Pin IC Typ Pin A Z80CLK 72 367 11 37 367 3 18 74 9 B RAS* 72 367 5 16 367 5 11 05 8 C RFSH* 40 Z80 28 16 367 3 33 Z80 28 D HDClock 40 280 6#1 5 Z80 6#1 33 Z80 6#1 E CAS* 72 367 10#2 37 367 14#2 54 32 2#2 F MUX* 72 367 2#2 37 367 4#2 30 157 1#2 #1 Die direkte Verbindung der bisherigen Taktquelle (Punkt A) mit
Pin 6 des Z80 ist zu durchtrennen, auf den Systembus wird das Signal
von Punkt D gelegt. |